package com.huchao.www.service.api;

import com.huchao.www.exception.MyException;
import com.huchao.www.pojo.AdminInfo;

import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * @Description:
 * @BelongsProject: springMVC
 * @BelongsPackage: com.huchao.www.service.api
 * @Author: 亖思
 * @CreateTime: 2022/12/12 15:18
 * @Version: 1.0
 */
public interface AdminService {

    /**
     * 〈新增管理员〉
     *
     * @param admin:管理员实体
     * @Author: 亖思
     * @Date: 2022/12/12 15:27
     * @return: boolean
     **/
    boolean addAdmin(AdminInfo admin) throws MyException;

    /**
     * 〈单条软删除〉
     *
     * @param adminId:id
     * @param nowTime:删除时间
     * @Author: 亖思
     * @Date: 2022/12/18 16:30
     * @return: boolean
     **/
    boolean deleteAdmin(Long adminId, Date nowTime);

    /**
     * 〈多条软删除〉
     *
     * @param delList:id集合
     * @param nowTime:删除时间
     * @Author: 亖思
     * @Date: 2022/12/18 16:30
     * @return: void
     **/
    void deleteAdmins(List<String> delList, Date nowTime);

    /**
     * 〈根据id查找〉
     *
     * @param adminId:id
     * @Author: 亖思
     * @Date: 2022/12/17 20:37
     * @return: AdminInfo
     **/
    AdminInfo findById(Long adminId);

    /**
     * 〈根据用户名查询〉
     *
     * @param loginName:
     * @Author: 亖思
     * @Date: 2023/1/13 21:51
     * @return: AdminInfo
     **/
    AdminInfo findByUserName(String loginName);

    /**
     * 〈修改管理员信息〉
     *
     * @param admin:管理员实体
     * @Author: 亖思
     * @Date: 2022/12/12 15:40
     * @return: boolean
     **/
    boolean updateAdmin(AdminInfo admin) throws MyException;


    /**
     * 〈分页查询〉
     *
     * @param map:开始日、截止日、用户名的map
     * @param pageNum:页数
     * @param pageSize:页面容量
     * @Author: 亖思
     * @Date: 2022/12/12 16:45
     * @return: List<AdminInfo>
     **/
    List<AdminInfo> findAdminPageList(HashMap<String, Object> map, int pageNum, int pageSize);
}
